import 'package:flutter/material.dart';

import '../utils/TokenManager.dart';
import 'home/index.dart';
import 'mine/index.dart';

class TabsPage extends StatefulWidget {
  const TabsPage({super.key});

  @override
  _TabsPageState createState() => _TabsPageState();
}

class _TabsPageState extends State<TabsPage> {
  List list = [
    {
      'label': '首页',
      'icon': 'assets/tabs/home_default.png',
      'activeIcon': 'assets/tabs/home_active.png',
    },
    {
      'label': '我的',
      'icon': 'assets/tabs/my_default.png',
      'activeIcon': 'assets/tabs/my_active.png',
    },
  ];
  int _selectedIndex = 0;
  //!方案一==>使用index进行判断
  // getTabbarContent() {
  //   if (_selectedIndex == 0) {
  //     return const HomePage();
  //   } else if (_selectedIndex == 1) {
  //     return const MinePage(selectedIndex: _selectedIndex);
  //   }
  // }

//!方案er

  List<BottomNavigationBarItem> getBottionNavItems() {
    List<BottomNavigationBarItem> lists = [];
    for (var item in list) {
      lists.add(
        BottomNavigationBarItem(
          icon: Image.asset(
            item['icon'],
            width: 30,
          ),
          activeIcon: Image.asset(
            item['activeIcon'],
            width: 30,
          ),
          label: item['label'],
        ),
      );
    }
    return lists;
  }

//在进行首页时进行初始化
  @override
  void initState() {
    super.initState();
    tokenManager.init();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      //!安全区组件
      body: SafeArea(
        //!方案一
        // child: getTabbarContent(),
        //!方案二 indexedStack 主要用来做切换使用
        child: IndexedStack(
          index: _selectedIndex,
          children: [const HomePage(), MinePage(selectedIndex: _selectedIndex)],
        ),
      ),
      bottomNavigationBar: BottomNavigationBar(
        // 底部导航栏类型
        type: BottomNavigationBarType.fixed,
        //  当前索引
        currentIndex: _selectedIndex,
        // 选中颜色
        selectedItemColor: const Color.fromRGBO(109, 163, 194, 1),
        // 未选中颜色
        unselectedItemColor: Colors.black,
        // 底部导航栏内容
        items: getBottionNavItems(),
        // 点击事件
        onTap: (int index) {
          setState(() {
            _selectedIndex = index;
          });
        },
      ),
    );
  }
}
